Web site usage via browsers is regularly tracked and analyzed by commercially available web analytics services, which gather detailed data about web page usage, and to some extent about particular web site users. One leading web analytics provider is Omniture, Inc., of Orem, Utah, the owner of the present invention. Omniture provides web analytics technology under its well-known mark SiteCatalyst™. All other marks used herein are property of their respective owners.
Flash presentations are interactive animations created using Macromedia/Adobe software; FLASH is a registered mark of Adobe Systems, Inc. Some Flash presentations include objects implemented in a computer programming (scripting) language called ActionScript. The ActionScript language does have some features in common with other computer languages, and in particular with a scripting language known as JavaScript (mark of Sun MicroSystems, Inc.). However, there are also important differences between ActionScript and JavaScript, not only as a programming language but also as a development environment, and as an execution environment.
Historically, JavaScript code has been embedded in some web pages to send usage and configuration data from a client web browser over the internet to an analytics server, to help track and analyze usage of a web site and its web pages. ActionScript code in Flash presentations has been used with JavaScript code in web pages to send Flash presentation usage data to an analytics server. ActionScript code can communicate with JavaScript code using the ActionScript function getURL( ) or FSCommand among others. For instance, an ActionScript object in a Flash presentation may send a data value to a JavaScript function using an ActionScript call such as:
getURL(“javascript:xyz(mydata)”);
Use of getURL( ) for Flash tracking has some advantages, and also has some disadvantages. On the plus side, if one is already using JavaScript code, one can automatically leverage variables set on the web page. Changes can be made by updating JavaScript code, without necessarily requiring an update to the Flash presentation. Omniture ClickMap™ (mark of Omniture, Inc.) visual analytics overlay reporting for Flash presentation analytics can be provided using the existing ActionScript-with-JavaScript technology. Flash presentation tracking is also relatively easy to implement, if the developer understands JavaScript, including nuances of the particular JavaScript code and environment in question. In Omniture's case, such nuances include, for instance, understanding that the Flash call re-executes JavaScript, so that all variables previously set will be sent through again to the analytics server unless cleared; understanding that linkTrackVars and linkTrackEvents must be configured for custom link tracking to work; and understanding that Omniture's current ClickMap™ for Flash implementation uses JavaScript for communication and is dependent on browser level code for data transmission.
On the minus side, the Flash developer, who is often different than the web developer, must understand such nuances. Testing for Flash also requires that JavaScript code be in place. Moreover, Flash can only reference JavaScript on the web page that triggered the Flash presentation; this limits tracking and testing. Debugging is complex in that it involves both the Flash presentation and the JavaScript code. JavaScript execution invoked from a Flash presentation can cause performance problems in the animation, harming the user experience. Likewise, a JavaScript onClick( ) command makes a clicking sound in the Internet Explorer browser and causes Flash animation performance delays. Also, the Internet Explorer browser limits the amount of data transferable; in one version it is only 508 characters per getURL( ) request, which limits multiple variable tracking. The JavaScript code is invoked via getURL( ), and subsequent calls to getURL( ) can cancel prior calls if they are made too close in time.
Some information regarding Flash presentations may have been previously transmitted without using JavaScript code. Omniture has provided its clients with an analytics data structure they can use to build a static analytics string to send over the Internet directly from an application. It has been possible to use ActionScript to send this static analytics string without going through JavaScript code. This provides some limited data about a Flash presentation's usage. Analytics data about the web page was sent using JavaScript code embedded in the web page. However, analytics data has relatively little value unless it is correlated with unique visitor IDs, and the existing method did not readily match Flash-related activity with the visitor ID of the web page that triggered the Flash presentation. The method was also static, rather than providing analytics information generated dynamically as a user interacted with the Flash presentation.
In addition, Sophus Ltd., which has offices in the UK, Spain, and the USA (web site sophus3 dot com), has apparently sent Flash player version information in variables to a server from ActionScript code without using getURL( ) to invoke JavaScript code. However, it is not clear that Sophus sent user interaction data to an analytics server in such a manner without using JavaScript. Moreover, Sophus apparently did not use object-independent ActionScript tracking code to capture data about user interaction with Flash objects.
Historically, tracking particular objects such as buttons or movie clips in a Flash presentation involved adding specific tracking code to each tracked object. This object-specific code would invoke getURL( ), or it would update a custom object-specific tracking variable that was sent later to the analytics server, for instance. A disadvantage of this approach is that if another object is added to the Flash presentation, it will not be tracked unless specific code is added to do that and the Flash presentation is then rebuilt.
Although Flash presentations are often triggered from a web page, they may also be standalone presentations, in either or both of the following senses. First, it is possible to run a Flash player on a computer outside a web browser, even though Flash players are commonly provided as browser plug-ins that run inside the browser. Thus, Flash usage may be worth tracking even when no browser is running Second, it is possible to run a Flash player without a network connection, and in particular, without a connection to the web. CDs, DVDs, and other removable computer readable storage media may be configured by Flash presentations (and possibly also by Flash players) which are stored on them. Indeed, Flash players may run on mobile devices that are not necessarily general-purpose computers. Accordingly, Flash usage may be worth tracking even when there is no network connection and hence no option, at least at the time, of sending collected analytics data over the network to an analytics server. Analytics data may instead be stored locally, either for later transmission to an analytics server, or solely for local use.
In short, although there are some advantages to tracking Flash presentation usage by calling JavaScript code with the ActionScript getURL( ) function, and although doing so is a well-established approach, other approaches are worth considering.
Other concepts related to the present invention may be known, or become apparent through sources other than this background, including without limitation the references being made of record in connection with the present patent application.